// pages/story/index.js
Page({

  /**
   * 页面的初始数据
   */
  data: {
    tempFilePath: '',
    recorder: null
  },
  playMp3(){
    const innerAudioContext = wx.createInnerAudioContext({
      useWebAudioImplement: false // 是否使用 WebAudio 作为底层音频驱动，默认关闭。对于短音频、播放频繁的音频建议开启此选项，开启后将获得更优的性能表现。由于开启此选项后也会带来一定的内存增长，因此对于长音频建议关闭此选项
    })
    innerAudioContext.src = this.data.tempFilePath
    
    innerAudioContext.play() // 播放
    
    // innerAudioContext.pause() // 暂停
    
    // innerAudioContext.stop() // 停止
  },
  stop(){
    console.log('停止录音')
    this.data.recorder.stop()
  },
  start(){
    console.log('开始路由')
    this.autoAuth(true)
    const options = {
      duration: 600000,
      sampleRate: 44100,
      numberOfChannels: 1,
      encodeBitRate: 192000,
      format: 'mp3',
      frameSize: 50
    }
    this.data.recorder.start(options)
  },
  initRecorder(){
    const recorderManager = wx.getRecorderManager()

    recorderManager.onStart(() => {
      console.log('recorder start')
    })
    recorderManager.onPause(() => {
      console.log('recorder pause')
    })
    recorderManager.onStop((res) => {
      console.log('recorder stop', res)
      const { tempFilePath } = res
      this.setData({tempFilePath})
    })
    recorderManager.onFrameRecorded((res) => {
      console.log('frameBuffer.byteLength', res)
    })
    


    
    return recorderManager
  },
  autoAuth( show = false ){
      wx.getSetting({
        success(res){
          console.log(res.authSetting)
          if(!res.authSetting['scope.record']) {
            wx.authorize({
              scope: 'scope.record',
              success () {
                // 用户已经同意小程序使用录音功能，后续调用 wx.startRecord 接口不会弹窗询问
                console.log('获取录音权限成功')
              },
              fail(){
                console.log('获取录音失败')
                if (!show) return
                wx.showModal({
                  title: '提示',
                  content: '检测没有开启录音功能,重新获取',
                  success: (res) => {
                    wx.openSetting({
                      success (res) {
                        console.log(res.authSetting)
                        // res.authSetting = {
                        //   "scope.userInfo": true,
                        //   "scope.userLocation": true
                        // }
                        }
                    })
                  }
                })
              }
            })
          }
        }
      })

  },

  /**
   * 生命周期函数--监听页面加载
   */
  onLoad(options) {
    this.autoAuth()
    const recorder = this.initRecorder()
    this.setData({recorder})
  },

  /**
   * 生命周期函数--监听页面初次渲染完成
   */
  onReady() {
    wx.createSelectorQuery().selectAll('.my-scroll-view').boundingClientRect((res)=>{
      console.log('res',res)
    }).exec()
  },

  /**
   * 生命周期函数--监听页面显示
   */
  onShow() {

  },

  /**
   * 生命周期函数--监听页面隐藏
   */
  onHide() {

  },

  /**
   * 生命周期函数--监听页面卸载
   */
  onUnload() {

  },

  /**
   * 页面相关事件处理函数--监听用户下拉动作
   */
  onPullDownRefresh() {

  },

  /**
   * 页面上拉触底事件的处理函数
   */
  onReachBottom() {

  },

  /**
   * 用户点击右上角分享
   */
  onShareAppMessage() {

  }
})